package com.spsoft.core.model.leqidmz.param.collect;

import com.spsoft.core.annotation.EnumValue;
import com.spsoft.core.model.leqidmz.param.BaseUserInfoParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;

@ApiModel(value = "发票风险信息查询")
@EqualsAndHashCode(callSuper = true)
@Data
public class InvoiceRiskQueryParam extends BaseUserInfoParam {

    /**
     * 纳税人识别号
     */
    @ApiModelProperty(value = "纳税人识别号", required = true)
    @NotBlank(message = "纳税人识别号不能为空")
    private String nsrsbh;

    /**
     * 发票类型
     * 01：增值税专用发票
     * 02：货物运输业增值税专用发票
     * 03：机动车销售统一发票
     * 04：增值税普通发票
     * 08：增值税电子专用发票
     * 10：增值税电子普通发票
     * 11：卷式发票
     * 14：通行费发票
     * 15：二手车销售统一发票
     * 81：电子发票（增值税专用发票）
     * 82：电子发票（普通发票）
     * 85：纸质发票（增值税专用发票）
     * 86：纸质发票（普通发票）
     * 51：电子发票（铁路电子客票）
     * 61：电子发票（航空运输客票电子行程单）
     * 83：机动车销售电子统一发票
     * 84：二手车销售电子统一发票
     * 87：纸质发票（机动车销售统一发票）
     * 88：纸质发票（二手车销售统一发票）
     * sjlx 为 3 时，暂支持发票类型传入 82、51、61
     */
    @ApiModelProperty(value = "发票类型", required = true)
    @NotBlank(message = "发票类型不能为空")
    @EnumValue(strValues = {"01", "02", "03", "04", "08", "10", "11", "14", "15", "81", "82", "85", "86", "51", "61", "83", "84", "87", "88"},
               message = "发票类型只能是：01 增值税专用发票 02 货物运输业增值税专用发票 03 机动车销售统一发票 04 增值税普通发票 08 增值税电子专用发票 " +
                         "10 增值税电子普通发票 11 卷式发票 14 通行费发票 15 二手车销售统一发票 81 电子发票（增值税专用发票） 82 电子发票（普通发票） " +
                         "85 纸质发票（增值税专用发票） 86 纸质发票（普通发票） 51 电子发票（铁路电子客票） 61 电子发票（航空运输客票电子行程单） " +
                         "83 机动车销售电子统一发票 84 二手车销售电子统一发票 87 纸质发票（机动车销售统一发票） 88 纸质发票（二手车销售统一发票）")
    private String fplx;

    /**
     * 起始日期
     */
    @ApiModelProperty(value = "起始日期", required = true)
    @NotBlank(message = "起始日期不能为空")
    private String qsrq;

    /**
     * 终止日期
     */
    @ApiModelProperty(value = "终止日期", required = true)
    @NotBlank(message = "终止日期不能为空")
    private String zzrq;

    /**
     * 每页数量
     */
    @ApiModelProperty(value = "每页数量", required = true)
    @NotBlank(message = "每页数量不能为空")
    private String pagesize;

    /**
     * 游标
     */
    @ApiModelProperty(value = "游标")
    private String scrollId;
}
